﻿/**
 * 重写 Ext.data.writer.Writer。
 * 
 */
Ext.define('Happy.override.data.writer.Json', {
    override: 'Ext.data.writer.Json',
    requires: ['Happy.data.relation.RelationUtil'],

    /**
     * 重写 ExtJs。
     *
     * 当 record.save 执行的时候，会调用到此方法，该方法将 record 序列化为 object 对象，
     * 然后将这个 object 发送到服务器。重写这个方法是为了支持如下功能：当记录之间有关系的
     * 时候，会将关系对应的记录一起序列化到 object 对象中。
     */
    getRecordData: function (record, operation) {
        var me = this;

        var data = me.callParent(arguments);

        if (record.relation) {
            Happy.data.relation.RelationUtil.writeRelatedData(me, record, data);
        }

        return data;
    }
});